Listpopup mit Auswahl

Mit diesem Funktionsbaustein können Sie eine Liste zur Auswahl übergeben. Ausserdem können Sie einen Titel als Überschrift über der Liste definieren. Zudem gibt es die Möglichkeit einen eigenen Status zu setzen und die Funktionscodes über eine Callback-Routine auszuwerten.


Auswahl mehrerer Einträge

Der Funktionsbaustein kann eine Liste ausgeben, aus der genau ein Eintrag ausgewählt werden kann oder aber mehrere Einträge. Bei mehreren Einträgen kann man noch festlegen, wieviele Einträge maximal erlaubt sind.

Das folgende Coding stellt eine Liste dar, aus der maximal zwei Einträge ausgewählt werden dürfen.

*** Variablen
DATA:
  BEGIN OF T_HEAD OCCURS 0,
    LINE(100),
  END OF T_HEAD,
  T_LIST  LIKE T_HEAD OCCURS 0 WITH HEADER LINE,
  T_MARK  LIKE T_HEAD OCCURS 0 WITH HEADER LINE.

START-OF-SELECTION.
*** Überschrift
  APPEND ‘Listüberschrift Zeile 1’ TO T_HEAD.
  APPEND ‘Listüberschrift Zeile 2’ TO T_HEAD.

*** Tabelleneinträge zur Asuwahl
  APPEND ‘1Eins’ TO T_LIST.
  APPEND ‘2Zwei’ TO T_LIST.
  APPEND ‘3Drei’ TO T_LIST.
  APPEND ‘4Vier’ TO T_LIST.
  APPEND ‘5Fünf’ TO T_LIST.

*** Popup anzeigen
  CALL FUNCTION ‘RH_LISTPOPUP’
       EXPORTING
            TITLE           = ‘Auswahlfenster’
            MARK_MODE       = 1
            MARK_MAX        = 2
            FULLSCREEN      = ‘ ‘
            CUCOL           = 5
            CUROW           = 5
            VISIBLE_OFFSET  = 1   “Erstes Zeichen nicht ausgeben
            VISIBLE_LENGTH  = 20  “20 Zeichen der Tabelle ausgeben
       TABLES
            PAGE_HEADER     = T_HEAD
            LIST            = T_LIST
            MARKED_LINES    = T_MARK
       EXCEPTIONS
            LIST_EMPTY      = 1
            WRONG_MARK_MODE = 2
            F15             = 3
            OTHERS          = 4.
  IF SY-SUBRC = 0 AND NOT T_MARK[] IS INITIAL.
*** Es wurde eine Auswahl getroffen:
    LOOP AT T_MARK.
      WRITE: / T_MARK-LINE.
    ENDLOOP.
  ELSE.
*** Es wurde keine Auswahl getroffen
    WRITE: / ‘Keine Auswahl getroffen.’.
  ENDIF.

Alternative

Ähnlich funktionieren tut der Baustein G_DISPLAY_SELECTION_DYNPRO

Enno Wulff